1. Field of the Invention
The present invention relates to information processing environments and, more particularly, to elastic resource provisioning in an asymmetric cluster environment.
2. Background Art
Computers are very powerful tools for storing and providing access to vast amounts of information. Computer databases are a common mechanism for storing information on computer systems while providing easy data access to users. A typical database is an organized collection of related information stored as “records” having “fields” of information. As an example, a database of employees may have a record for each employee where each record contains fields designating specifics about the employee, such as name, home address, salary, and the like.
Between the actual physical database itself (i.e., the data actually stored on a storage device) and the users of the system, a database management system or DBMS is typically provided as a software cushion or layer. In essence, the DBMS shields the database user from knowing or even caring about underlying hardware-level details. Typically, all requests from users for access to the data are processed by the DBMS. For example, information may be added or removed from data files, information retrieved from or updated in such files, and so forth, all without user knowledge of the underlying system implementation. In this manner, the DBMS provides users with a conceptual view of the database that is removed from the hardware level.
In recent years, users have demanded that database systems be continuously available, with no downtime, as they are frequently running applications that are critical to business operations. In response, distributed database systems have been introduced to provide for greater reliability. Architectures for building multi-processor, high performance transactional database systems include a Shared Everything (SE) architecture, in which multiple processors of a single computer system share a common central memory and share the same set of disks, a Shared Nothing Cluster (SNC) in which neither memory nor any peripheral storage is shared among multiple compute systems, and a Shared Disk Cluster (SDC), in which multiple computer systems, each with a private memory share a common collection of disks. Each computer system in a SDC is also referred to as a Node, and all Nodes in the cluster communicate with each other, typically through private interconnects.
In general, Shared Disk Cluster database systems provide for transparent, continuous availability of the applications running on the cluster with instantaneous failover amongst servers in the cluster. When one system is down (e.g., for upgrading the CPU), the applications are able to continue to operate against the shared data using the remaining machines in the cluster, so that a continuously available solution is provided. Shared Disk Cluster systems also enable users to address scalability problems by simply adding additional machines to the cluster, without major data restructuring and the associated system downtime that is common in prior SMP (symmetric multiprocessor) environments.
Although Shared Disk Cluster database systems provide increased availability and reliability, they also introduce a number of new challenges. Among these challenges is that an SDC system is often used for running a wide variety of applications, each of which may have different workload profiles and resource requirements. SDC systems are subject to varied deployment requirements both in terms of the applications that users want to run on the cluster and how they want to run those applications. For example, one organization may want to run a single application across many nodes of a cluster, while another may want to use its cluster to consolidate and run several applications that were previously run on different machines on a single cluster node.
The demands placed by the applications on the cluster may also differ to a considerable agree in different deployment environments. For example, a cluster may host both an order entry application, which is write intensive, as well as a read-only application (e.g., an application serving up Web pages). A SDC may also host both mission critical production applications as well as lower priority applications (e.g., development or testing applications). Thus, there are many different ways that organizations may wish to utilize SDC systems. Organizations may, in fact, wish to deploy a combination of several of the different types of applications described above on a single cluster.
More and more, mission-critical systems, which store information on database systems, such as data warehousing systems, are run from such clusters. Data warehouse systems represent a type of database system optimized as a decision support system by tracking and processing large amounts of aggregate database information, the data warehouse. Data warehouses contain a wide variety of data that could be used to present a coherent picture of business conditions at a single point in time. Products exist for building, managing, and using a data warehouse, such as Sybase IQ available from Sybase, Inc. of Dublin, Calif.
Increasingly higher demands are being placed on database management systems to scale-out with increased hardware resources, particularly to support fast, ad hoc query processing in large data warehouse applications. A need exists for an approach for a database management system that supports efficient and flexible resource utilization adjusting elastically to physical resource adjustments and that meets the demands of differing deployment environments, e.g., a mixture of read-only and write intensive applications, mission critical production applications and lower priority applications, etc. The present invention addresses these and other needs.